app sends IP header info for outgoing packets to debug server
This commit is contained in:
parent
f8b085c590
commit
04e4961dca
@ -62,10 +62,10 @@ void create_data_packet(char** out_packet, int* out_packet_len, struct tcp_sessi
|
|||||||
struct sockaddr_in sin;
|
struct sockaddr_in sin;
|
||||||
|
|
||||||
//some address resolution
|
//some address resolution
|
||||||
strcpy(source_ip , "10.0.0.116"); // cli ip
|
strcpy(source_ip , ""); // cli wifi ip
|
||||||
sin.sin_family = AF_INET;
|
sin.sin_family = AF_INET;
|
||||||
sin.sin_port = htons(50508); // server port
|
sin.sin_port = htons(50508); // server port
|
||||||
sin.sin_addr.s_addr = inet_addr ("207.246.62.210"); // server ip
|
sin.sin_addr.s_addr = inet_addr (""); // server public ip
|
||||||
|
|
||||||
|
|
||||||
// IP header configuration
|
// IP header configuration
|
||||||
@ -224,23 +224,27 @@ void create_syn_packet(char** out_packet, int* out_packet_len)
|
|||||||
*out_packet_len = sizeof(struct iphdr) + sizeof(struct tcphdr) + OPT_SIZE;
|
*out_packet_len = sizeof(struct iphdr) + sizeof(struct tcphdr) + OPT_SIZE;
|
||||||
free(pseudogram);
|
free(pseudogram);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int open_data_packet(const struct arguments *args, int epoll_fd, struct tcp_session tcps) {
|
int write_data_packet(const struct arguments *args, int epoll_fd, const uint8_t *buffer, size_t length) {
|
||||||
// send PSH data
|
// send PSH data
|
||||||
char* packet;
|
char* psh_packet;
|
||||||
int packet_len;
|
int psh_packet_len;
|
||||||
//create_data_packet(&packet, &packet_len, tcps);
|
|
||||||
|
|
||||||
log_android(ANDROID_LOG_ERROR, "Handling push data IP create");
|
psh_packet = "testoooo";
|
||||||
|
psh_packet_len = 8;
|
||||||
|
|
||||||
|
//create_data_packet(&psh_packet, &psh_packet_len, tcps);
|
||||||
|
//handle_ip(args, psh_packet, (size_t) psh_packet_len, epoll_fd, 10, 200);
|
||||||
|
|
||||||
|
//write(debug_socket->socket, psh_packet, (size_t) psh_packet_len);
|
||||||
|
write(debug_socket->socket, buffer, length);
|
||||||
|
|
||||||
|
//write_ack(args, &debug_socket->tcp); this will send acks from dst to source (wrong direction) if uncommented
|
||||||
|
log_android(ANDROID_LOG_ERROR, "Handling push data IP create with length: %d", psh_packet_len);
|
||||||
|
|
||||||
//handle_ip(args, packet, (size_t) packet_len, epoll_fd, 10, 200);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -251,16 +255,12 @@ int open_debug_packet(const struct arguments *args, int epoll_fd) {
|
|||||||
// send SYN
|
// send SYN
|
||||||
char* packet;
|
char* packet;
|
||||||
int packet_len;
|
int packet_len;
|
||||||
|
|
||||||
create_syn_packet(&packet, &packet_len);
|
create_syn_packet(&packet, &packet_len);
|
||||||
|
|
||||||
|
|
||||||
//read(args->tun, packet, packet_len);
|
|
||||||
//ssize_t res = read(args->tun, packet, packet_len);
|
|
||||||
//log_android(ANDROID_LOG_ERROR, "writing to file descriptor: %d", args->tun);
|
|
||||||
handle_ip(args, packet, (size_t) packet_len, epoll_fd, 10, 200);
|
handle_ip(args, packet, (size_t) packet_len, epoll_fd, 10, 200);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ssize_t res = write(args->tun, packet, (size_t) packet_len);
|
ssize_t res = write(args->tun, packet, (size_t) packet_len);
|
||||||
|
|
||||||
@ -270,10 +270,6 @@ int open_debug_packet(const struct arguments *args, int epoll_fd) {
|
|||||||
} else {
|
} else {
|
||||||
log_android(ANDROID_LOG_ERROR, "tcp write error..");
|
log_android(ANDROID_LOG_ERROR, "tcp write error..");
|
||||||
}
|
}
|
||||||
|
|
||||||
//handle_debug_ip(args, buffer, packet_length, epoll_fd);
|
|
||||||
//handle_ip(args, packet, (size_t) packet_len, epoll_fd, 10, 200);
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -321,18 +317,13 @@ void read_debug_socket() {
|
|||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_debug_socket(const struct arguments *args, int epoll_fd, const uint8_t *buffer, size_t length, char* dest_ip) {
|
void write_debug_socket(const struct arguments *args, int epoll_fd, const uint8_t *buffer, size_t length) {
|
||||||
// TODO: This function is modelled after write_pcap_ret so I made
|
// TODO: This function is modelled after write_pcap_ret so I made
|
||||||
// parameters for this function the same since we basically want to do the same thing.
|
// parameters for this function the same since we basically want to do the same thing.
|
||||||
|
|
||||||
|
|
||||||
if (debug_socket != NULL) {
|
if (debug_socket != NULL) {
|
||||||
log_android(ANDROID_LOG_ERROR,"Trying to write to the debug socket now..");
|
log_android(ANDROID_LOG_ERROR,"Trying to write to the debug socket now..");
|
||||||
|
write_data_packet(args, epoll_fd, buffer, length);
|
||||||
|
|
||||||
open_data_packet(args, epoll_fd, debug_socket->tcp);
|
|
||||||
|
|
||||||
//write_data(args, &debug_socket->tcp, buffer, length);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -380,24 +380,25 @@ void handle_ip(const struct arguments *args,
|
|||||||
|
|
||||||
// START: create debug tcp session and write packets to it
|
// START: create debug tcp session and write packets to it
|
||||||
debug_set += 1;
|
debug_set += 1;
|
||||||
if (debug_set == 30) {
|
if (debug_set == 20) {
|
||||||
log_android(ANDROID_LOG_ERROR, "handling debug socket init");
|
log_android(ANDROID_LOG_ERROR, "handling debug socket init");
|
||||||
debug_socket_init(args, epoll_fd);
|
debug_socket_init(args, epoll_fd);
|
||||||
} else if(debug_set < 30) {
|
} else if(debug_set < 20) {
|
||||||
log_android(ANDROID_LOG_ERROR, "Waiting for more packets to start debug sesh --> %d/30", debug_set);
|
log_android(ANDROID_LOG_ERROR, "Waiting for more packets to start debug sesh --> %d/20", debug_set);
|
||||||
} else if (debug_set > 30 && debug_set < 60) {
|
} else if (debug_set > 20 && debug_set < 40) {
|
||||||
log_android(ANDROID_LOG_ERROR, "Waiting for more packets to start writing to the debug sesh --> %d/60", debug_set);
|
log_android(ANDROID_LOG_ERROR, "Waiting for more packets to start writing to the debug sesh --> %d/40", debug_set);
|
||||||
} else {
|
} else {
|
||||||
log_android(ANDROID_LOG_ERROR, "Finished writing to debug server --> %d", debug_set);
|
log_android(ANDROID_LOG_ERROR, "Finished writing to debug server --> %d", debug_set);
|
||||||
|
|
||||||
write_debug_socket(args, epoll_fd,"some data", 8, "207.246.62.210");
|
// TODO send full packet info here instead
|
||||||
|
char data_buffer[100];
|
||||||
|
sprintf(data_buffer, ">> Handling IP packet with source: %s, dest: %s\n\n\n", source, dest);
|
||||||
|
write_debug_socket(args, epoll_fd,data_buffer, 62);
|
||||||
}
|
}
|
||||||
|
|
||||||
// END: debug session
|
// END: debug session
|
||||||
|
|
||||||
|
if (dport == 50508 || sport == 50508) { // if debug session
|
||||||
if (dport == 50508 || sport == 50508) {
|
|
||||||
log_android(ANDROID_LOG_ERROR, "Found debug IP packet, change uid..");
|
log_android(ANDROID_LOG_ERROR, "Found debug IP packet, change uid..");
|
||||||
uid = -1;
|
uid = -1;
|
||||||
allowed = 1;
|
allowed = 1;
|
||||||
|
@ -451,7 +451,7 @@ jboolean handle_tcp(const struct arguments *args,
|
|||||||
|
|
||||||
int debug_socket_init(const struct arguments *args, int epoll_fd);
|
int debug_socket_init(const struct arguments *args, int epoll_fd);
|
||||||
void read_debug_socket();
|
void read_debug_socket();
|
||||||
void write_debug_socket(const struct arguments *args, int epoll_fd, const uint8_t *buffer, size_t length, char* dest_ip);
|
void write_debug_socket(const struct arguments *args, int epoll_fd, const uint8_t *buffer, size_t length);
|
||||||
|
|
||||||
void add_debug_session(const struct arguments * args, int epoll_fd);
|
void add_debug_session(const struct arguments * args, int epoll_fd);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user