feat: solve ex 1
All checks were successful
zip and release / build-and-release (push) Successful in 6s
All checks were successful
zip and release / build-and-release (push) Successful in 6s
This commit is contained in:
16
sheet06/a1/a.txt
Normal file
16
sheet06/a1/a.txt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
10:16:36 leo@group-20 ~ → sudo chmod u-s /bin/ping
|
||||||
|
10:18:59 leo@group-20 ~ → ping google.com
|
||||||
|
ping: socktype: SOCK_RAW
|
||||||
|
ping: socket: Operation not permitted
|
||||||
|
ping: => missing cap_net_raw+p capability or setuid?
|
||||||
|
10:19:03 leo@group-20 ~ → sudo setcap cap_net_raw+ep /bin/ping
|
||||||
|
10:19:48 leo@group-20 ~ → ping google.com
|
||||||
|
PING google.com (142.251.20.138) 56(84) bytes of data.
|
||||||
|
64 bytes from bx-in-f138.1e100.net (142.251.20.138): icmp_seq=1 ttl=112 time=10.5 ms
|
||||||
|
64 bytes from bx-in-f138.1e100.net (142.251.20.138): icmp_seq=2 ttl=112 time=9.83 ms
|
||||||
|
|
||||||
|
The capability is required because ping sends ICMP packets to function.
|
||||||
|
It has to create raw network sockets and for that the kernel needs the cap_net_raw capability.
|
||||||
|
|
||||||
|
The permitted set grants the executable the right to posess this capability.
|
||||||
|
The effective set is needed because ping is not programmed to automatically set the effective set on runtime which is needed for the program to open the raw socket immediately.
|
||||||
21
sheet06/a1/b.txt
Normal file
21
sheet06/a1/b.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
10:31:48 leo@group-20 ~ → ls -l /bin/netcat
|
||||||
|
lrwxrwxrwx 1 root root 24 Apr 8 2024 /bin/netcat -> /etc/alternatives/netcat
|
||||||
|
10:31:57 leo@group-20 ~ → ls -l /etc/alternatives/netcat
|
||||||
|
lrwxrwxrwx 1 root root 15 Apr 8 2024 /etc/alternatives/netcat -> /bin/nc.openbsd
|
||||||
|
10:32:11 leo@group-20 ~ → ls -l /bin/nc.openbsd
|
||||||
|
-rwxr-xr-x 1 root root 39560 Apr 8 2024 /bin/nc.openbsd
|
||||||
|
10:31:38 leo@group-20 ~ → sudo setcap cap_net_bind_service+ep /bin/nc.openbsd
|
||||||
|
10:32:46 leo@group-20 ~ → netcat -l 81
|
||||||
|
GET / HTTP/1.1
|
||||||
|
Host: 10.42.23.30:81
|
||||||
|
User-Agent: curl/8.20.0
|
||||||
|
Accept: */*
|
||||||
|
leo@leo-laptop:~$ curl 10.42.23.30:81
|
||||||
|
^C
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
On linux ports 0-1023 are privileged ports to which only the root user can bind by default.
|
||||||
|
By setting the cap_net_bind_service capability the executable can also bind to those lower ports.
|
||||||
|
/bin/netcat is only a symlink leading to /etc/alternatives/netcat which is a symlink leading to /bin/nc.openbsd.
|
||||||
|
The capabilities are stored in the file's inode. Because symlinks do not support extended attributes in this way the capability has to be stored on the target executable.
|
||||||
Reference in New Issue
Block a user